#include "stdafx.h"
#pragma once
//-------------------------------------------------------------------------------------------------
//ImageRect.h - Simple Rectangle 
//-------------------------------------------------------------------------------------------------
//FreeBSD License
//Copyright 2011 Will Stott All rights reserved.
//
//Redistribution and use in source and binary forms, with or without modification, are
//permitted provided that the following conditions are met:
//
//   1. Redistributions of source code must retain the above copyright notice, this list of
//      conditions and the following disclaimer.
//
//   2. Redistributions in binary form must reproduce the above copyright notice, this list
//      of conditions and the following disclaimer in the documentation and/or other materials
//      provided with the distribution.
//
//THIS SOFTWARE IS PROVIDED BY Will Stott ``AS IS'' AND ANY EXPRESS OR IMPLIED
//WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
//FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Will Stott OR
//CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
//CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
//SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
//ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
//NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
//ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
//The views and conclusions contained in the software and documentation are those of the
//authors and should not be interpreted as representing official policies, either expressed
//or implied, of Will Stott.
//
//----Authors--------------------------------------------------------------------------------------
//created by: will.stott@ucl.ac.uk Feb 2011
//
//----Comments-------------------------------------------------------------------------------------
//
//-------------------------------------------------------------------------------------------------
#ifdef IMAGEPROCLIB_EXPORTS
#define IMAGEPROCLIBAPI __declspec(dllexport)
#else
#define IMAGEPROCLIBAPI __declspec(dllimport)
#endif

#include "ImagePt.h"

class IMAGEPROCLIBAPI ImageRect 
{
private:
	bool _Complete;										//does the set of points described a closed shape?
	ImagePt _TopLeft;
	ImagePt _BotRight;

public:
	ImageRect(void);
	ImageRect(ImageRect *pImageRect);
	ImageRect(int TopLeftx, int TopLefty, int BottomRightx, int BottomRighty);
	~ImageRect(void);

	void SetTopLeft(int TopLeftx, int TopLefty) {_TopLeft.x = TopLeftx, _TopLeft.y = TopLefty; }
	void SetBotRight(int BotRightx, int BotRighty) { _BotRight.x = BotRightx, _BotRight.y = BotRighty; }
	void SetTopLeftX(int TopLeftx) {_TopLeft.x = TopLeftx; }
	void SetTopLeftY(int TopLefty) {_TopLeft.y = TopLefty; }
	void SetBotRightX(int BotRightx) { _BotRight.x = BotRightx; }
	void SetBotRightY(int BotRighty) { _BotRight.y = BotRighty; }

	ImagePt  GetTopLeft() { return _TopLeft; }
	ImagePt  GetBotRight() { return _BotRight; }
	int		 GetWidth() { return (_TopLeft.x >  _BotRight.x) ? _TopLeft.x - _BotRight.x : _BotRight.x - _TopLeft.x; }
	int		 GetHeight() { return (_TopLeft.y >  _BotRight.y) ? _TopLeft.y - _BotRight.y : _BotRight.y - _TopLeft.y; }

};



//-------------------------------------------------------------------------------------------------
//			E N D   O F   F I L E
//-------------------------------------------------------------------------------------------------



